package 动态规划9月;
import java.util.*;
/*
给出一个区间[a, b]，计算区间内“神奇数”的个数。
神奇数的定义：存在不同位置的两个数位，组成一个两位数（且不含前导0），且这个两位数为质数。
比如：153，可以使用数字3和数字1组成13，13是质数，满足神奇数。同样153可以找到31和53也为质数，只要找到一个质数即满足神奇数。
 */
/*
先求11到99所有质数，存于列表
第一个循环从a到b，将数字 I 转换成字符串S
第二个循环将质数列表每个元素拆成两个字符C1和C2，通过字符串S的indexOf查找C1和C2，如果查找得到即为神奇数
值得注意地方质数中有11这种C1==C2的数字，处理下即可。
 */
public class Main1 {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        for (int i = 11; i < 100; i++) {
            boolean isPrime = true;
            for (int j = 2; j <= Math.sqrt(i); j++) {
                if (i % j == 0) {
                    isPrime = false;
                    break;
                }
            }
            if (isPrime) list.add(i);
        }
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int cnt = 0;
        for (int i = a; i <= b; i++) {
            String s = String.valueOf(i);
            for (Integer e : list) {
                String s1 = String.valueOf(e / 10);
                String s2 = String.valueOf(e % 10);
                if (!s1.equals(s2)) {
                    if (s.indexOf(s1) != -1 && s.indexOf(s2) != -1) {
                        cnt++;
                        break;
                    }
                } else {
                    int index = s.indexOf(s1);
                    if (index != -1 && s.indexOf(s2, index + 1) != -1) {
                        cnt++;
                        break;
                    }
                }
            }
        }
        System.out.println(cnt);
    }
}
